; Music of Metropolis (1988) (The Power House)
; Ripped by Megachur the 14/07/2007

; Need System Vectors

	write "METROPOL.BIN"

music_date_rip	equ &0e77
music_adr	equ &8027
first_theme	equ 0
last_theme	equ 0

	read "music_header_v1_0.asm"

.l802d equ $ + 6
.l8027
	db #00,#00,#c0,#00,#00,#00,#00,#00
.l8036 equ $ + 7
.l8034 equ $ + 5
	db #00,#00,#00,#00,#00,#00,#00,#00
.l803c equ $ + 5
.l803b equ $ + 4
.l803a equ $ + 3
.l8038 equ $ + 1
	db #00,#00,#00,#00,#00,#00,#00,#00
.l8045 equ $ + 6
.l8043 equ $ + 4
	db #00,#00,#00,#00,#41,#82,#8f,#83
.l804d equ $ + 6
.l804c equ $ + 5
.l804a equ $ + 3
.l8049 equ $ + 2
.l8047
	db #00,#00,#00,#04,#00,#0f,#0e,#00
.l8052 equ $ + 3
	db #00,#00,#00,#00,#00
.l8054
	call l8091
	call l8083
	ld c,#3c
	ld a,#07
	call #bd34
	ld hl,l802d
	ld b,#81
	ld de,l80af
	call #bcef
	ld hl,l8027
	ld de,#001e
	ld bc,(l804a)
	call #bce9
	ret
;
.stop_music
.l807a
;
	ld hl,l8027
	call #bd0a
	call #bcec
.l8083
	ld d,#03
.l8085
	ld a,#07
	add d
	ld c,#00
	call #bd34
	dec d
	jr nz,l8085
	ret
.l8091
	ld hl,(l8043)
	ld (l8034),hl
	ld hl,(l8045)
	ld (l8036),hl
	ld hl,(l8047)
	ld (l8038),hl
	ld a,#01
	ld (l803a),a
	ld (l803b),a
	ld (l803c),a
	ret
;
.play_music
.l80af
;
	ld hl,l803a
	ld bc,l8043
	ld de,l8034
	xor a
	call l80dd
	ld a,(l8049)
	cp #01
	ret z
	ld a,#01
	inc hl
	inc bc
	inc bc
	inc de
	inc de
	call l80dd
	ld a,(l8049)
	cp #02
	ret z
	ld a,#02
	inc hl
	inc bc
	inc bc
	inc de
	inc de
	call l80dd
	ret
.l80dd
	dec (hl)
	ret nz
	push hl
	push bc
	push de
	push af
	ld (l8052),hl
	ld a,(de)
	ld l,a
	inc de
	ld a,(de)
	ld h,a
	inc hl
	inc hl
	ld a,h
	ld (de),a
	dec de
	ld a,l
	ld (de),a
	ld a,(hl)
	cp #00
	jr nz,l8111
	ld a,(bc)
	ld (de),a
	inc de
	inc bc
	ld a,(bc)
	ld (de),a
	ld a,#01
	ld hl,(l8052)
	ld (hl),a
.l8103
	pop af
	push af
	add #08
	ld c,#00
	call #bd34
.l810c
	pop af
	pop de
	pop bc
	pop hl
	ret
.l8111
	bit 7,a
	jr z,l811e
	res 7,a
	ld bc,(l8052)
	ld (bc),a
	jr l8103
.l811e
	ld bc,(l8052)
	ld (bc),a
	inc hl
	push hl
	ld a,(hl)
	and #f0
	srl a
	ld e,a
	sla a
	add e
	ld e,a
	ld d,#00
	ld hl,l8162
	add hl,de
	ld b,h
	ld c,l
	pop hl
	ld a,(hl)
	and #0f
	ld e,a
	sla e
	ld h,b
	ld l,c
	add hl,de
	pop af
	push af
	sla a
	push af
	ld c,(hl)
	call #bd34
	pop af
	inc a
	inc hl
	ld c,(hl)
	call #bd34
	pop af
	push af
	ld hl,l804c
	ld e,a
	ld d,#00
	add hl,de
	add #08
	ld c,(hl)
	call #bd34
	jr l810c
.l8162
	dw #0777,#070c,#06a7,#0647
	dw #05ed,#0598,#0547,#04fc
	dw #04d4,#0470,#0431,#03f4
	dw #03dc,#0386,#0353,#0324
	dw #02f6,#02cc,#02a4,#027e
	dw #025a,#0238,#0218,#01fa
	dw #01de,#01c3,#01aa,#0192
	dw #017b,#0166,#0152,#013f
	dw #012d,#011c,#010c,#00fd
	dw #00ef,#00e1,#00d5,#00c9
	dw #00be,#00b3,#00a9,#009f
	dw #0096,#008e,#0086,#007f
	dw #0077,#0071,#006a,#0064
	dw #005f,#0059,#0054,#0050
	dw #004b,#0047,#0043,#003f
	dw #003c,#0038,#0035,#0032
	dw #002f,#002d,#002a,#0028
	dw #0026,#0024,#0022,#0020
;
.init_music
;
	ld ix,l823a
	push ix
	call l807a
	pop ix
	ld l,(ix+#00)
	ld h,(ix+#01)
	ld (l8045),hl
	inc ix
	inc ix
	ld l,(ix+#00)
	ld h,(ix+#01)
	ld (l8043),hl
	inc ix
	inc ix
	ld a,(ix+#00)
	ld (l804a),a
	inc ix
	ld a,(ix+#00)
	ld (l804d),a
	inc ix
	ld a,(ix+#00)
	ld (l804c),a
	call l8054
;	call #bb18
	defs 2,0
	ret
	call l807a
	defs 3,0	;jp #1cf4 modified by Megachur
	ret
.l823a
	db #8f,#83,#41,#82,#04,#0e,#0f,#00
	db #00,#90,#3f,#8c,#3f,#04,#30,#04
	db #34,#08,#37,#04,#39,#08,#37,#08
	db #30,#0a,#34,#04,#40,#02,#37,#04
	db #39,#08,#37,#04,#30,#04,#34,#08
	db #37,#04,#39,#08,#37,#08,#34,#0c
	db #32,#06,#35,#08,#32,#02,#35,#04
	db #34,#02,#32,#03,#30,#81,#3f,#01
	db #30,#81,#3f,#01,#30,#81,#3f,#03
	db #30,#81,#3f,#04,#30,#04,#2a,#03
	db #30,#81,#3f,#05,#30,#81,#3f,#02
	db #30,#04,#29,#03,#30,#81,#3f,#03
	db #30,#81,#3f,#04,#30,#04,#32,#04
	db #30,#04,#29,#04,#30,#04,#34,#08
	db #37,#04,#39,#08,#30,#08,#42,#10
	db #40,#90,#3f,#8a,#3f,#02,#40,#02
	db #42,#02,#43,#02,#44,#02,#47,#02
	db #49,#02,#43,#02,#44,#02,#47,#02
	db #49,#02,#42,#02,#44,#02,#47,#02
	db #45,#02,#43,#02,#42,#02,#44,#02
	db #47,#02,#37,#02,#39,#03,#40,#81
	db #3f,#01,#40,#81,#3f,#07,#40,#81
	db #3f,#04,#40,#03,#43,#81,#3f,#03
	db #43,#81,#3f,#04,#43,#02,#44,#02
	db #47,#02,#49,#02,#43,#02,#44,#02
	db #45,#02,#49,#02,#42,#02,#44,#02
	db #47,#02,#00,#01,#49,#81,#3f,#02
	db #49,#02,#47,#02,#44,#02,#40,#02
	db #42,#03,#45,#81,#3f,#03,#45,#81
	db #3f,#08,#45,#04,#47,#04,#45,#04
	db #44,#04,#49,#82,#3f,#03,#40,#81
	db #3f,#01,#40,#81,#3f,#01,#40,#81
	db #3f,#01,#40,#81,#3f,#01,#40,#81
	db #3f,#02,#40,#02,#43,#01,#40,#81
	db #3f,#01,#40,#81,#3f,#02,#40,#02
	db #3a,#01,#40,#81,#3f,#01,#40,#81
	db #3f,#02,#40,#82,#3f,#02,#39,#02
	db #40,#02,#42,#02,#43,#02,#42,#02
	db #40,#02,#39,#02,#40,#02,#42,#02
	db #43,#02,#42,#02,#40,#02,#39,#02
	db #40,#02,#42,#84,#3f,#04,#44,#04
	db #47,#04,#49,#08,#43,#08,#42,#10
	db #40,#00,#3f,#00,#00,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#17,#02,#27,#02
	db #1b,#02,#20,#02,#21,#02,#22,#02
	db #12,#02,#22,#02,#17,#02,#27,#02
	db #1b,#02,#20,#02,#21,#02,#22,#02
	db #12,#02,#22,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#15,#02,#25,#02
	db #19,#02,#1a,#02,#1b,#02,#20,#02
	db #10,#02,#20,#02,#15,#02,#25,#02
	db #19,#02,#1a,#02,#1b,#02,#20,#02
	db #10,#02,#20,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#17,#02,#27,#02
	db #1b,#02,#20,#02,#21,#02,#22,#02
	db #12,#02,#22,#02,#17,#02,#27,#02
	db #1b,#02,#20,#02,#21,#02,#22,#02
	db #12,#02,#22,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#15,#02,#25,#02
	db #19,#02,#1a,#02,#1b,#02,#20,#02
	db #10,#02,#20,#02,#15,#02,#25,#02
	db #19,#02,#1a,#02,#1b,#02,#20,#02
	db #10,#02,#20,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#02,#10,#02,#20,#02
	db #14,#02,#15,#02,#16,#02,#17,#02
	db #07,#02,#17,#00,#3f,#00,#00

;
.game_name
	db "Metropolis",0
.game_year
	db "1988",0
.game_publisher
	db "The Power House",0
.music_author
	db "",0
.music_comment
	db "",0

	read "music_end_v1_0.asm"
